home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / pretty19.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  39.6 KB  |  1,426 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "pretty.h"
  9. /*No:FUNCTION.arguments*/
  10. T0* r696try_to_undefine(T696* C,T0* a1,T0* a2){
  11. T0* R=NULL;
  12. X776undefine_in(a1,a2);
  13. R=r696try_to_undefine_aux(C,a1,a2);
  14. /*IF*/if ((R)!=((void*)(NULL))) {
  15. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T696*)C))->_clients/*24*/);
  16. /*]*/
  17. }
  18. else {
  19. r605fatal_undefine(((T605*)a2),a1);
  20. }
  21. /*FI*/return R;
  22. }
  23. /*No:FUNCTION.is_deferred*/
  24. /*No:FUNCTION.fz_bad_assertion*/
  25. T0* r696runnable(T0* a1,T0* a2,T0* a3){
  26. T0* R=NULL;
  27. T0* _a=NULL;
  28. int _i=0;
  29. /*IF*/if (!(r608empty(((T608*)a1)))) {
  30. R=r608twin(((T608*)a1));
  31. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  32. while (!((_i)==(0))) {
  33. r604push(((T604*)(oBC364small_eiffel)),a3);
  34. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  35. /*IF*/if ((_a)==((void*)(NULL))) {
  36. r696error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  37. }
  38. else {
  39. /*[IRF3.6put*/{T608* C1=((T608*)R);
  40. T0* b1=_a;
  41. int b2=_i;
  42. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  43. }/*]*/
  44. }
  45. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  46. _i=(_i)-(1);
  47. }
  48. }
  49. /*FI*/return R;
  50. }
  51. /*No:FUNCTION.rescue_compound*/
  52. void r696add_into(T696* C,T0* a1){
  53. T0* _fn=NULL;
  54. int _i=0;
  55. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  56. _i=1;
  57. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  58. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  59. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  60. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  61. r683add_position(X776start_position(_fn));
  62. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  63. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  64. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  65. r7append(((T7*)(oBC683explanation)),b1);
  66. }/*]*/
  67. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  68. }
  69. else {
  70. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  71. }
  72. /*FI*/_i=(_i)+(1);
  73. }
  74. }
  75. /*No:FUNCTION.end_comment*/
  76. T0* r696try_to_undefine_aux(T696* C,T0* a1,T0* a2){
  77. T0* R=NULL;
  78. {T649*n=malloc(sizeof(*n));
  79. *n=M649;
  80. r649from_effective(n,a1,(((T696*)C))->_arguments/*28*/,(((T696*)C))->_result_type/*12*/,(((T696*)C))->_require_assertion/*36*/,(((T696*)C))->_ensure_assertion/*40*/,a2);
  81. R=(T0*)n;
  82. }
  83. return R;
  84. }
  85. void r696make(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  86. r696make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
  87. C->_result_type=a3;
  88. }
  89. /*No:FUNCTION.not_computed*/
  90. /*No:FUNCTION.nb_errors*/
  91. void r696pretty_print_one_name(T0* a1){
  92. /*IF*/if (X776is_frozen(a1)) {
  93. r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
  94. }
  95. /*FI*/X776definition_pretty_print(a1);
  96. }
  97. void r696make_routine(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  98. r696make_e_feature(C,a1,NULL);
  99. C->_header_comment=a4;
  100. C->_arguments=a2;
  101. C->_obsolete_mark=a3;
  102. C->_require_assertion=a5;
  103. }
  104. /*No:FUNCTION.local_vars*/
  105. void r696set_header_comment(T696* C,T0* a1){
  106. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  107. C->_end_comment=a1;
  108. }
  109. /*FI*/}
  110. T0* r696start_position(T696* C){
  111. T0* R=NULL;
  112. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  113. return R;
  114. }
  115. T0* r696to_run_feature(T696* C,T0* a1,T0* a2){
  116. T0* R=NULL;
  117. r696check_obsolete(C);
  118. {T857*n=malloc(sizeof(*n));
  119. *n=M857;
  120. r857make(n,a1,a2,(T0*)C);
  121. R=(T0*)n;
  122. }
  123. return R;
  124. }
  125. /*No:FUNCTION.ensure_assertion*/
  126. /*No:FUNCTION.code_require*/
  127. T0* r696run_ensure(T0* a1){
  128. T0* R=NULL;
  129. T0* _r=NULL;
  130. r608clear(((T608*)(oBC359assertion_collector)));
  131. /*[IRF3.3clear*/{T0* _default_item=NULL;
  132. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  133. }/*]*/
  134. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  135. _r=r696runnable(oBC359assertion_collector,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  136. /*IF*/if ((_r)!=((void*)(NULL))) {
  137. {T633*n=malloc(sizeof(*n));
  138. *n=M633;
  139. r633from_runnable(n,_r);
  140. R=(T0*)n;
  141. }
  142. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  143. /*]*/
  144. /*[IRF3.3clear*/{T0* _default_item=NULL;
  145. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  146. }/*]*/
  147. }
  148. /*FI*/return R;
  149. }
  150. T0* r696run_require(T0* a1){
  151. T0* R=NULL;
  152. T0* _ar=NULL;
  153. T0* _hc=NULL;
  154. T0* _er=NULL;
  155. T0* _r=NULL;
  156. int _i=0;
  157. r522clear(((T522*)(oBC359require_collector)));
  158. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  159. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  160. _i=1;
  161. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  162. _er=r522item(((T522*)(oBC359require_collector)),_i);
  163. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  164. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  165. _r=r696runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  166. /*IF*/if ((_r)!=((void*)(NULL))) {
  167. {T343*n=malloc(sizeof(*n));
  168. *n=M343;
  169. r343from_runnable(n,_r);
  170. _er=(T0*)n;
  171. }
  172. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  173. /*]*/
  174. /*IF*/if ((_ar)==((void*)(NULL))) {
  175. _ar=se_ma522(1,_er);
  176. }
  177. else {
  178. r522add_last(((T522*)_ar),_er);
  179. }
  180. /*FI*/}
  181. /*FI*/}
  182. /*FI*/_i=(_i)+(1);
  183. }
  184. /*IF*/if ((_ar)!=((void*)(NULL))) {
  185. {T541*n=malloc(sizeof(*n));
  186. *n=M541;
  187. /*[IRF3.3make*/((((T541*)(n)))->_list)=(_ar);
  188. /*]*/
  189. R=(T0*)n;
  190. }
  191. }
  192. /*FI*/}
  193. /*FI*/return R;
  194. }
  195. /*No:FUNCTION.result_type*/
  196. /*No:FUNCTION.fz_03*/
  197. /*No:FUNCTION.em1*/
  198. void r696pretty_print(T696* C){
  199. T0* _fn=NULL;
  200. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
  201. /*]*/
  202. r238indent(((T238*)(oBC364fmt)));
  203. r696pretty_print_profile(C);
  204. r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_355));
  205. /*IF*/if (((((T696*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
  206. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  207. /*]*/
  208. r238indent(((T238*)(oBC364fmt)));
  209. r238keyword(((T238*)(oBC364fmt)),((T0*)ms2_355));
  210. r805pretty_print(((T805*)((((T696*)C))->_obsolete_mark/*32*/)));
  211. }
  212. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  213. /*]*/
  214. r238indent(((T238*)(oBC364fmt)));
  215. /*IF*/if (((((T696*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
  216. r393pretty_print(((T393*)((((T696*)C))->_header_comment/*16*/)));
  217. }
  218. /*FI*//*IF*/if (((((T696*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
  219. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  220. /*]*/
  221. r343pretty_print(((T343*)((((T696*)C))->_require_assertion/*36*/)));
  222. }
  223. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  224. /*]*/
  225. r238indent(((T238*)(oBC364fmt)));
  226. r696pretty_print_routine_body(C);
  227. /*IF*/if (((((T696*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
  228. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  229. /*]*/
  230. r633pretty_print(((T633*)((((T696*)C))->_ensure_assertion/*40*/)));
  231. }
  232. /*FI*//*IF*/if (((((T696*)C))->_rescue_compound/*44*/)!=((void*)(NULL))) {
  233. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  234. /*]*/
  235. r238indent(((T238*)(oBC364fmt)));
  236. r238keyword(((T238*)(oBC364fmt)),((T0*)ms3_355));
  237. r592pretty_print(((T592*)((((T696*)C))->_rescue_compound/*44*/)));
  238. }
  239. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  240. /*]*/
  241. r238indent(((T238*)(oBC364fmt)));
  242. r238keyword(((T238*)(oBC364fmt)),((T0*)ms4_355));
  243. /*IF*/if ((((((T696*)C))->_end_comment/*48*/)!=((void*)(NULL)))&&(!(r393dummy(((T393*)((((T696*)C))->_end_comment/*48*/)))))) {
  244. r393pretty_print(((T393*)((((T696*)C))->_end_comment/*48*/)));
  245. }
  246.  else if (r238print_end_routine(((T238*)(oBC364fmt)))) {
  247. r238put_string(((T238*)(oBC364fmt)),((T0*)ms5_355));
  248. _fn=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
  249. X776definition_pretty_print(_fn);
  250. }
  251. /*FI*/r238put_character(((T238*)(oBC364fmt)),'\n');
  252. }
  253. /*No:FUNCTION.obsolete_mark*/
  254. /*No:FUNCTION.set_clients*/
  255. /*No:FUNCTION.em2*/
  256. /*No:FUNCTION.names*/
  257. /*No:FUNCTION.require_assertion*/
  258. /*No:FUNCTION.use_current_state*/
  259. /*No:FUNCTION.code_ensure*/
  260. void r696set_rescue_compound(T696* C,T0* a1){
  261. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  262. r696error(r696start_position(C),((T0*)ms6_355));
  263. }
  264. /*FI*/C->_rescue_compound=a1;
  265. }
  266. void r696pretty_print_profile(T696* C){
  267. r696pretty_print_names(C);
  268. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  269. /*]*/
  270. r696pretty_print_arguments(C);
  271. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
  272. /*]*/
  273. /*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  274. r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
  275. X291pretty_print((((T696*)C))->_result_type/*12*/);
  276. }
  277. /*FI*/}
  278. void r696pretty_print_names(T696* C){
  279. int _i=0;
  280. _i=1;
  281. r696pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
  282. _i=(_i)+(1);
  283. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  284. r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
  285. r696pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
  286. _i=(_i)+(1);
  287. }
  288. }
  289. int r696can_hide(T696* C,T0* a1,T0* a2){
  290. int R=0;
  291. /*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  292. /*IF*/if ((((((T696*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  293. r683add_position(X359start_position(a1));
  294. r696error(r696start_position(C),((T0*)ms5_359));
  295. }
  296. /*FI*/}
  297. /*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  298. /*IF*/if ((((((T696*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  299. r683add_position(X359start_position(a1));
  300. r696error(r696start_position(C),((T0*)ms6_359));
  301. }
  302.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T696*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  303. r683add_position(X359start_position(a1));
  304. r696error(r696start_position(C),((T0*)ms7_359));
  305. }
  306. /*FI*/}
  307. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  308. /*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  309. /*IF*/if (!(X291is_a_in((((T696*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  310. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  311. r7append(((T7*)(oBC683explanation)),b1);
  312. }/*]*/
  313. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  314. r7append(((T7*)(oBC683explanation)),b1);
  315. }/*]*/
  316. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  317. }
  318. /*FI*/}
  319. /*FI*/}
  320. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  321. /*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  322. /*IF*/if (!(r31is_a_in(((T31*)((((T696*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  323. r683add_position(X359start_position(a1));
  324. r683add_position(r696start_position(C));
  325. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  326. r7append(((T7*)(oBC683explanation)),b1);
  327. }/*]*/
  328. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  329. r7append(((T7*)(oBC683explanation)),b1);
  330. }/*]*/
  331. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  332. }
  333. /*FI*/}
  334. /*FI*/}
  335. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  336. return R;
  337. }
  338. /*No:FUNCTION.header_comment*/
  339. /*No:FUNCTION.routine_body*/
  340. int r696is_merge_with(T696* C,T0* a1,T0* a2){
  341. int R=0;
  342. /*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  343. /*IF*/if ((((((T696*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  344. r683add_position(X359start_position(a1));
  345. r696error(r696start_position(C),((T0*)ms2_359));
  346. }
  347. /*FI*/}
  348. /*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  349. /*IF*/if ((((((T696*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  350. r683add_position(X359start_position(a1));
  351. r696error(r696start_position(C),((T0*)ms3_359));
  352. }
  353.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T696*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  354. r683add_position(X359start_position(a1));
  355. r696error(r696start_position(C),((T0*)ms4_359));
  356. }
  357. /*FI*/}
  358. /*FI*//*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  359. /*IF*/if (!(X291is_a_in((((T696*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  360. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  361. }
  362. /*FI*/}
  363. /*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  364. /*IF*/if (!(r31is_a_in(((T31*)((((T696*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  365. r683add_position(X359start_position(a1));
  366. r696error(r696start_position(C),((T0*)ms12_359));
  367. }
  368. /*FI*/}
  369. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  370. return R;
  371. }
  372. /*No:FUNCTION.fz_dot*/
  373. /*No:FUNCTION.set_ensure_assertion*/
  374. /*No:FUNCTION.first_name*/
  375. /*No:FUNCTION.pretty_print_once_or_do*/
  376. /*No:FUNCTION.clients*/
  377. void r696collect_for(T696* C,int a1){
  378. /*IF*/if ((a1)==(1001)) {
  379. /*IF*/if (((((T696*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
  380. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T696*)C))->_require_assertion/*36*/))) {
  381. r522add_last(((T522*)(oBC359require_collector)),(((T696*)C))->_require_assertion/*36*/);
  382. }
  383. /*FI*/}
  384. /*FI*/}
  385. else {
  386. /*IF*/if (((((T696*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
  387. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T696*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
  388. /*]*/
  389. r633add_into(((T633*)((((T696*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
  390. }
  391. /*FI*/}
  392. /*FI*/}
  393. void r696make_effective_routine(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  394. r696make_routine(C,a1,a2,a3,a4,a5);
  395. C->_local_vars=a6;
  396. C->_routine_body=a7;
  397. C->_use_current_state=1011;
  398. }
  399. void r696error(T0* a1,T0* a2){
  400. r683add_position(a1);
  401. r683error(((T683*)(oBC364eh)),a2);
  402. }
  403. /*No:FUNCTION.base_class*/
  404. void r696pretty_print_arguments(T696* C){
  405. /*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  406. r31pretty_print(((T31*)((((T696*)C))->_arguments/*28*/)));
  407. }
  408. /*FI*/}
  409. void r696pretty_print_routine_body(T696* C){
  410. /*IF*/if (((((T696*)C))->_local_vars/*20*/)!=((void*)(NULL))) {
  411. r620pretty_print(((T620*)((((T696*)C))->_local_vars/*20*/)));
  412. }
  413. /*FI*/r238indent(((T238*)(oBC364fmt)));
  414. /*[IRF3.2pretty_print_once_or_do*/r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_706));
  415. /*]*/
  416. r238put_character(((T238*)(oBC364fmt)),'\40');
  417. /*IF*/if (((((T696*)C))->_routine_body/*52*/)!=((void*)(NULL))) {
  418. r592pretty_print(((T592*)((((T696*)C))->_routine_body/*52*/)));
  419. }
  420. /*FI*/}
  421. void r696make_e_feature(T696* C,T0* a1,T0* a2){
  422. C->_names=a1;
  423. C->_result_type=a2;
  424. }
  425. void r696check_obsolete(T696* C){
  426. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  427. /*IF*/if (((((T696*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
  428. /*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
  429. r7append(((T7*)(oBC683explanation)),b1);
  430. }/*]*/
  431. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T696*)C))->_obsolete_mark/*32*/))))->_to_string/*12*/;
  432. r7append(((T7*)(oBC683explanation)),b1);
  433. }/*]*/
  434. r696warning(r696start_position(C),((T0*)ms137_470));
  435. }
  436. /*FI*/}
  437. /*FI*/}
  438. void r696warning(T0* a1,T0* a2){
  439. r683add_position(a1);
  440. r683warning(((T683*)(oBC364eh)),a2);
  441. }
  442. int r657has_creation(T657* C,T0* a1){
  443. int R=0;
  444. R=r605has_creation(((T605*)(r657base_class(C))),a1);
  445. return R;
  446. }
  447. /*No:TYPE_CLASS.is_anchored*/
  448. /*No:TYPE_CLASS.is_array*/
  449. int r657is_a(T657* C,T0* a1){
  450. int R=0;
  451. T0* _obcn=NULL;
  452. T0* _bcn=NULL;
  453. _bcn=(((T657*)C))->_base_class_name/*4*/;
  454. _obcn=X291base_class_name(a1);
  455. /*IF*/if (((((T451*)((T451*)_bcn)))->_to_string/*0*/)==((void*)((((T451*)((T451*)_obcn)))->_to_string/*0*/))) {
  456. R=1;
  457. }
  458.  else if (r451is_subclass_of(((T451*)_bcn),_obcn)) {
  459. /*IF*/if (X291is_generic(a1)) {
  460. R=r605is_a_vncg(((T605*)(r451base_class(((T451*)_bcn)))),(T0*)C,a1);
  461. }
  462. else {
  463. R=1;
  464. }
  465. /*FI*/}
  466. /*FI*//*IF*/if (!(R)) {
  467. r683add_type((T0*)C,((T0*)ms71_470));
  468. r683add_type(a1,((T0*)ms67_470));
  469. }
  470. /*FI*/return R;
  471. }
  472. /*No:TYPE_CLASS.run_type*/
  473. /*No:TYPE_CLASS.is_pointer*/
  474. /*No:TYPE_CLASS.is_string*/
  475. /*No:TYPE_CLASS.is_like_feature*/
  476. /*No:TYPE_CLASS.is_like_current*/
  477. /*No:TYPE_CLASS.make*/
  478. T0* r657type_any(void){
  479. if (fBC364type_any==0){
  480. T0* R=NULL;
  481. fBC364type_any=1;
  482. {T669*n=malloc(sizeof(*n));
  483. *n=M669;
  484. r669make(n,NULL);
  485. R=(T0*)n;
  486. }
  487. oBC364type_any=R;}
  488. return oBC364type_any;}
  489. /*No:TYPE_CLASS.start_position*/
  490. /*No:TYPE_CLASS.fz_inako*/
  491. /*No:TYPE_CLASS.is_character*/
  492. /*No:TYPE_CLASS.written_mark*/
  493. T0* r657to_runnable(T657* C,T0* a1){
  494. T0* R=NULL;
  495. T0* _bc=NULL;
  496. _bc=r451base_class(((T451*)((((T657*)C))->_base_class_name/*4*/)));
  497. /*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
  498. /*IF*/if (!(r863fast_has(((T863*)(oBC657check_memory)),_bc))) {
  499. r368set_at_run_time(((T368*)(r657run_class(C))));
  500. r863add_last(((T863*)(oBC657check_memory)),_bc);
  501. }
  502. /*FI*/}
  503. /*FI*/R=(T0*)C;
  504. return R;
  505. }
  506. /*No:TYPE_CLASS.is_run_type*/
  507. /*No:TYPE_CLASS.is_formal_generic*/
  508. T0* r657generic_list(T657* C){
  509. T0* R=NULL;
  510. r657fatal_error_generic_list(C);
  511. return R;
  512. }
  513. T0*oBC657check_memory=NULL;
  514. /*No:TYPE_CLASS.is_real*/
  515. /*No:TYPE_CLASS.is_bit*/
  516. void r657fatal_error_generic_list(T657* C){
  517. r683add_type((T0*)C,((T0*)ms12_291));
  518. r683print_as_fatal_error(((T683*)(oBC364eh)));
  519. }
  520. /*No:TYPE_CLASS.pretty_print*/
  521. T0* r657smallest_ancestor(T657* C,T0* a1){
  522. T0* R=NULL;
  523. T0* _bc=NULL;
  524. T0* _rto_bc=NULL;
  525. T0* _pl2=NULL;
  526. T0* _pl1=NULL;
  527. T0* _rto=NULL;
  528. _rto=X291run_type(a1);
  529. /*IF*/if (X291is_none(a1)) {
  530. R=(T0*)C;
  531. }
  532.  else if (X291is_any(_rto)) {
  533. R=_rto;
  534. }
  535. else {
  536. _rto_bc=X291base_class(_rto);
  537. _bc=r657base_class(C);
  538. /*IF*/if ((_rto_bc)==((void*)(_bc))) {
  539. R=(T0*)C;
  540. }
  541.  else if (r605is_subclass_of(((T605*)_rto_bc),_bc)) {
  542. R=(T0*)C;
  543. }
  544.  else if (r605is_subclass_of(((T605*)_bc),_rto_bc)) {
  545. R=_rto;
  546. }
  547.  else if ((X291is_expanded(_rto))&&(!(r657is_expanded(C)))) {
  548. R=X291smallest_ancestor(_rto,(T0*)C);
  549. }
  550. else {
  551. _pl1=(((T605*)((T605*)_bc)))->_parent_list/*40*/;
  552. _pl2=(((T605*)((T605*)_rto_bc)))->_parent_list/*40*/;
  553. /*IF*/if (((_pl1)==((void*)(NULL)))||((_pl2)==((void*)(NULL)))) {
  554. R=r657type_any();
  555. }
  556.  else if ((/*(IRF4.6count*/(((T26*)((T26*)((((T673*)((T673*)_pl2)))->_list/*12*/))))->_upper/*8*//*)*/)==(1)) {
  557. R=X291smallest_ancestor((((T877*)((T877*)(/*(IRF4.6super*/r26first(((T26*)((((T673*)((T673*)_pl2)))->_list/*12*/)))/*)*/))))->_type/*4*/,(T0*)C);
  558. }
  559.  else if ((/*(IRF4.6count*/(((T26*)((T26*)((((T673*)((T673*)_pl1)))->_list/*12*/))))->_upper/*8*//*)*/)==(1)) {
  560. R=X291smallest_ancestor((((T877*)((T877*)(/*(IRF4.6super*/r26first(((T26*)((((T673*)((T673*)_pl1)))->_list/*12*/)))/*)*/))))->_type/*4*/,a1);
  561. }
  562. else {
  563. R=r673smallest_ancestor(((T673*)_pl1),(T0*)C);
  564. R=X291smallest_ancestor(R,a1);
  565. }
  566. /*FI*/}
  567. /*FI*/}
  568. /*FI*/return R;
  569. }
  570. /*No:TYPE_CLASS.is_boolean*/
  571. /*No:TYPE_CLASS.is_double*/
  572. T0* r657run_class(T657* C){
  573. T0* R=NULL;
  574. R=r604run_class((T0*)C);
  575. return R;
  576. }
  577. /*No:TYPE_CLASS.run_time_mark*/
  578. int r657is_a_in(T657* C,T0* a1,T0* a2){
  579. int R=0;
  580. T0* _ct=NULL;
  581. T0* _t2=NULL;
  582. T0* _t1=NULL;
  583. /*IF*/if ((/*(IRF4.6written_mark*/(((T451*)((T451*)((((T657*)C))->_base_class_name/*4*/))))->_to_string/*0*//*)*/)==((void*)(X291written_mark(a1)))) {
  584. R=1;
  585. }
  586. else {
  587. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  588. _t1=r657to_runnable(C,_ct);
  589. _t2=X291to_runnable(a1,_ct);
  590. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  591. R=1;
  592. }
  593. else {
  594. R=X291is_a(_t1,_t2);
  595. }
  596. /*FI*/}
  597. /*FI*/return R;
  598. }
  599. T0* r657look_up_for(T657* C,T0* a1,T0* a2){
  600. T0* R=NULL;
  601. R=r605look_up_for(((T605*)(r657base_class(C))),a1,a2);
  602. return R;
  603. }
  604. T0* r657expanded_initializer(T657* C){
  605. T0* R=NULL;
  606. /*IF*/if (r657is_expanded(C)) {
  607. R=r605expanded_initializer(((T605*)(r657base_class(C))),(T0*)C);
  608. }
  609. /*FI*/return R;
  610. }
  611. /*No:TYPE_CLASS.fz_dot*/
  612. /*No:TYPE_CLASS.is_generic*/
  613. /*No:TYPE_CLASS.used_as_reference*/
  614. int r657is_reference(T657* C){
  615. int R=0;
  616. R=!((((T605*)((T605*)(r657base_class(C)))))->_is_expanded/*20*/);
  617. return R;
  618. }
  619. T0* r657base_class(T657* C){
  620. T0* R=NULL;
  621. T0* _bcn=NULL;
  622. _bcn=(((T657*)C))->_base_class_name/*4*/;
  623. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  624. R=r451base_class(((T451*)_bcn));
  625. }
  626. else {
  627. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  628. r7append(((T7*)(oBC683explanation)),b1);
  629. }/*]*/
  630. r683add_type((T0*)C,((T0*)ms67_470));
  631. r683print_as_fatal_error(((T683*)(oBC364eh)));
  632. }
  633. /*FI*/return R;
  634. }
  635. /*No:TYPE_CLASS.is_any*/
  636. /*No:TYPE_CLASS.base_class_name*/
  637. int r657is_expanded(T657* C){
  638. int R=0;
  639. R=(((T605*)((T605*)(r657base_class(C)))))->_is_expanded/*20*/;
  640. return R;
  641. }
  642. /*No:TYPE_CLASS.is_basic_eiffel_expanded*/
  643. /*No:TYPE_CLASS.is_none*/
  644. /*No:TYPE_CLASS.is_integer*/
  645. /*No:NATIVE_JVM_INVOKESTATIC.fz_jvm_invokestatic*/
  646. T0* r300language_name(void){
  647. T0* R=NULL;
  648. R=((T0*)ms28_470);
  649. return R;
  650. }
  651. /*No:NATIVE_JVM_INVOKESTATIC.pretty_print*/
  652. T0* r940add_comment(T940* C,T0* a1){
  653. T0* R=NULL;
  654. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  655. R=(T0*)C;
  656. }
  657. else {
  658. {T529*n=malloc(sizeof(*n));
  659. *n=M529;
  660. r529make(n,(T0*)C,a1);
  661. R=(T0*)n;
  662. }
  663. }
  664. /*FI*/return R;
  665. }
  666. int r940to_integer(T940* C){
  667. int R=0;
  668. r940error((((T940*)C))->_start_position/*8*/,((T0*)ms69_470));
  669. return R;
  670. }
  671. int r940is_a(T940* C,T0* a1){
  672. int R=0;
  673. R=X609is_a(/*(IRF4.4run_type*/((T0*)((T549*)(((T940*)C))->_result_type/*16*/))/*)*/,X291run_type(X662result_type(a1)));
  674. /*IF*/if (!(R)) {
  675. r683add_position((((T940*)C))->_start_position/*8*/);
  676. r940error(X662start_position(a1),((T0*)ms4_662));
  677. }
  678. /*FI*/return R;
  679. }
  680. /*No:BIT_CONSTANT.is_current*/
  681. void r940make(T940* C,T0* a1,T0* a2){
  682. C->_start_position=a1;
  683. C->_value=a2;
  684. }
  685. void r940print_as_target(T940* C){
  686. r238put_character(((T238*)(oBC364fmt)),'\50');
  687. r940pretty_print(C);
  688. r238put_character(((T238*)(oBC364fmt)),'\51');
  689. r238put_character(((T238*)(oBC364fmt)),'\56');
  690. }
  691. /*No:BIT_CONSTANT.fz_iinaiv*/
  692. /*No:BIT_CONSTANT.start_position*/
  693. /*No:BIT_CONSTANT.precedence*/
  694. T0* r940to_runnable(T940* C,T0* a1){
  695. T0* R=NULL;
  696. T0* _ic=NULL;
  697. /*IF*/if (((((T940*)C))->_current_type/*4*/)==((void*)(NULL))) {
  698. C->_current_type=a1;
  699. /*IF*/if (((((T940*)C))->_result_type/*16*/)==((void*)(NULL))) {
  700. {T342*n=malloc(sizeof(*n));
  701. *n=M342;
  702. r342make(n,(((T7*)((T7*)((((T940*)C))->_value/*12*/))))->_count/*4*/,(((T940*)C))->_start_position/*8*/);
  703. _ic=(T0*)n;
  704. }
  705. {T549*n=malloc(sizeof(*n));
  706. *n=M549;
  707. r549make(n,(((T940*)C))->_start_position/*8*/,_ic);
  708. C->_result_type=(T0*)n;
  709. }
  710. r368set_at_run_time(((T368*)(r549run_class(((T549*)((((T940*)C))->_result_type/*16*/))))));
  711. }
  712. /*FI*/R=(T0*)C;
  713. }
  714. else {
  715. R=r940twin(C);
  716. /*[IRF3.3set_current_type*/((((T940*)(((T940*)R))))->_current_type)=(NULL);
  717. /*]*/
  718. R=r940to_runnable(((T940*)R),a1);
  719. }
  720. /*FI*/return R;
  721. }
  722. void r940bracketed_pretty_print(T940* C){
  723. r238put_string(((T238*)(oBC364fmt)),(((T940*)C))->_value/*12*/);
  724. r238put_character(((T238*)(oBC364fmt)),'B');
  725. }
  726. /*No:BIT_CONSTANT.result_type*/
  727. T0* r940twin(T940* C){
  728. T0* R=NULL;
  729. R=malloc(sizeof(*C));
  730. *((T940*)R)=*C;
  731. return R;
  732. }
  733. /*No:BIT_CONSTANT.set_current_type*/
  734. /*No:BIT_CONSTANT.atomic_precedence*/
  735. void r940pretty_print(T940* C){
  736. r238put_string(((T238*)(oBC364fmt)),(((T940*)C))->_value/*12*/);
  737. r238put_character(((T238*)(oBC364fmt)),'B');
  738. }
  739. /*No:BIT_CONSTANT.value*/
  740. /*No:BIT_CONSTANT.current_type*/
  741. /*No:BIT_CONSTANT.is_manifest_string*/
  742. /*No:BIT_CONSTANT.is_void*/
  743. void r940error(T0* a1,T0* a2){
  744. r683add_position(a1);
  745. r683error(((T683*)(oBC364eh)),a2);
  746. }
  747. T0* r367add_comment(T367* C,T0* a1){
  748. T0* R=NULL;
  749. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  750. R=(T0*)C;
  751. }
  752. else {
  753. {T529*n=malloc(sizeof(*n));
  754. *n=M529;
  755. r529make(n,(T0*)C,a1);
  756. R=(T0*)n;
  757. }
  758. }
  759. /*FI*/return R;
  760. }
  761. /*No:E_FALSE.to_integer*/
  762. int r367is_a(T367* C,T0* a1){
  763. int R=0;
  764. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T707*)/*(IRF4.8result_type*/r367type_boolean()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
  765. /*IF*/if (!(R)) {
  766. r683add_position((((T367*)C))->_start_position/*8*/);
  767. r367error(X662start_position(a1),((T0*)ms4_662));
  768. }
  769. /*FI*/return R;
  770. }
  771. /*No:E_FALSE.is_current*/
  772. T0* r367type_boolean(void){
  773. if (fBC364type_boolean==0){
  774. T0* R=NULL;
  775. fBC364type_boolean=1;
  776. {T707*n=malloc(sizeof(*n));
  777. *n=M707;
  778. r707make(n,NULL);
  779. R=(T0*)n;
  780. }
  781. oBC364type_boolean=R;}
  782. return oBC364type_boolean;}
  783. /*No:E_FALSE.make*/
  784. /*No:E_FALSE.print_as_target*/
  785. T0* r367to_string(void){
  786. T0* R=NULL;
  787. R=((T0*)ms17_470);
  788. return R;
  789. }
  790. /*No:E_FALSE.fz_iinaiv*/
  791. /*No:E_FALSE.start_position*/
  792. /*No:E_FALSE.precedence*/
  793. T0* r367to_runnable(T367* C,T0* a1){
  794. T0* R=NULL;
  795. /*IF*/if (((((T367*)C))->_current_type/*4*/)==((void*)(NULL))) {
  796. C->_current_type=a1;
  797. R=(T0*)C;
  798. }
  799. else {
  800. R=r367twin(C);
  801. /*[IRF3.3set_current_type*/((((T367*)(((T367*)R))))->_current_type)=(a1);
  802. /*]*/
  803. }
  804. /*FI*/return R;
  805. }
  806. /*No:E_FALSE.bracketed_pretty_print*/
  807. /*No:E_FALSE.result_type*/
  808. T0* r367twin(T367* C){
  809. T0* R=NULL;
  810. R=malloc(sizeof(*C));
  811. *((T367*)R)=*C;
  812. return R;
  813. }
  814. /*No:E_FALSE.set_current_type*/
  815. /*No:E_FALSE.atomic_precedence*/
  816. /*No:E_FALSE.pretty_print*/
  817. /*No:E_FALSE.fz_false*/
  818. /*No:E_FALSE.current_type*/
  819. /*No:E_FALSE.is_manifest_string*/
  820. /*No:E_FALSE.is_void*/
  821. void r367error(T0* a1,T0* a2){
  822. r683add_position(a1);
  823. r683error(((T683*)(oBC364eh)),a2);
  824. }
  825. void r671make(T671* C,T0* a1,T0* a2){
  826. C->_start_position=a1;
  827. C->_items=a2;
  828. }
  829. /*No:EXPORT_LIST.start_position*/
  830. void r671pretty_print(T671* C){
  831. int _i=0;
  832. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  833. /*]*/
  834. r238indent(((T238*)(oBC364fmt)));
  835. r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_671));
  836. _i=1;
  837. while (!((_i)>((((T587*)((T587*)((((T671*)C))->_items/*4*/))))->_upper/*8*/))) {
  838. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
  839. /*]*/
  840. r542pretty_print(((T542*)(r587item(((T587*)((((T671*)C))->_items/*4*/)),_i))));
  841. _i=(_i)+(1);
  842. /*IF*/if ((_i)<=((((T587*)((T587*)((((T671*)C))->_items/*4*/))))->_upper/*8*/)) {
  843. r238put_character(((T238*)(oBC364fmt)),'\73');
  844. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
  845. /*]*/
  846. r238indent(((T238*)(oBC364fmt)));
  847. }
  848. /*FI*/}
  849. }
  850. T0* r671clients_for(T671* C,T0* a1){
  851. T0* R=NULL;
  852. T0* _ei=NULL;
  853. int _i=0;
  854. _i=1;
  855. while (!(((R)!=((void*)(NULL)))||((_i)>((((T587*)((T587*)((((T671*)C))->_items/*4*/))))->_upper/*8*/)))) {
  856. _ei=r587item(((T587*)((((T671*)C))->_items/*4*/)),_i);
  857. /*IF*/if (r542affect(((T542*)_ei),a1)) {
  858. R=(((T542*)((T542*)_ei)))->_clients/*0*/;
  859. }
  860. else {
  861. _i=(_i)+(1);
  862. }
  863. /*FI*/}
  864. return R;
  865. }
  866. /*No:EXPORT_LIST.items*/
  867. /*No:CLASS_NAME.us_none*/
  868. int r451is_subclass_of(T451* C,T0* a1){
  869. int R=0;
  870. /*IF*/if ((((T0*)ms1_473))==((void*)((((T451*)((T451*)a1)))->_to_string/*0*/))) {
  871. R=1;
  872. }
  873.  else if ((((T0*)ms19_473))==((void*)((((T451*)((T451*)a1)))->_to_string/*0*/))) {
  874. }
  875. else {
  876. R=r605is_subclass_of(((T605*)(r451base_class(C))),r451base_class(((T451*)a1)));
  877. }
  878. /*FI*/return R;
  879. }
  880. void r451make(T451* C,T0* a1,T0* a2){
  881. C->_start_position=a2;
  882. C->_to_string=r902item(a1);
  883. }
  884. /*No:CLASS_NAME.to_string*/
  885. void r451make_unknown(T451* C){
  886. {T627*n=malloc(sizeof(*n));
  887. *n=M627;
  888. r627with(n,1,1,(T0*)C);
  889. C->_start_position=(T0*)n;
  890. }
  891. C->_to_string=((T0*)ms3_451);
  892. }
  893. /*No:CLASS_NAME.start_position*/
  894. /*No:CLASS_NAME.unknown_name*/
  895. /*No:CLASS_NAME.pretty_print*/
  896. T0* r451base_class(T451* C){
  897. T0* R=NULL;
  898. R=r604base_class(((T604*)(oBC364small_eiffel)),(T0*)C);
  899. return R;
  900. }
  901. void r451identify(T451* C,T0* a1){
  902. C->_to_string=r902item(a1);
  903. }
  904. /*No:CLASS_NAME.us_any*/
  905. T0* r260add_comment(T260* C,T0* a1){
  906. T0* R=NULL;
  907. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  908. R=(T0*)C;
  909. }
  910. else {
  911. {T529*n=malloc(sizeof(*n));
  912. *n=M529;
  913. r529make(n,(T0*)C,a1);
  914. R=(T0*)n;
  915. }
  916. }
  917. /*FI*/return R;
  918. }
  919. /*No:CHARACTER_CONSTANT.ascii_pretty_print*/
  920. /*No:CHARACTER_CONSTANT.to_integer*/
  921. int r260is_a(T260* C,T0* a1){
  922. int R=0;
  923. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T252*)r260result_type()))/*)*/,X291run_type(X662result_type(a1)));
  924. /*IF*/if (!(R)) {
  925. r683add_position((((T260*)C))->_start_position/*8*/);
  926. r260error(X662start_position(a1),((T0*)ms4_662));
  927. }
  928. /*FI*/return R;
  929. }
  930. /*No:CHARACTER_CONSTANT.std_pretty_print*/
  931. /*No:CHARACTER_CONSTANT.is_current*/
  932. void r260character_coding(char a1,T0* a2){
  933. char _special=0;
  934. {int z1=a1;
  935.  
  936. if((64==z1)){
  937. _special='A';
  938. }
  939.  else 
  940. if((8==z1)){
  941. _special='B';
  942. }
  943.  else 
  944. if((94==z1)){
  945. _special='C';
  946. }
  947.  else 
  948. if((36==z1)){
  949. _special='D';
  950. }
  951.  else 
  952. if((12==z1)){
  953. _special='F';
  954. }
  955.  else 
  956. if((92==z1)){
  957. _special='H';
  958. }
  959.  else 
  960. if((126==z1)){
  961. _special='L';
  962. }
  963.  else 
  964. if((10==z1)){
  965. _special='N';
  966. }
  967.  else 
  968. if((96==z1)){
  969. _special='Q';
  970. }
  971.  else 
  972. if((13==z1)){
  973. _special='R';
  974. }
  975.  else 
  976. if((35==z1)){
  977. _special='S';
  978. }
  979.  else 
  980. if((9==z1)){
  981. _special='T';
  982. }
  983.  else 
  984. if((0==z1)){
  985. _special='U';
  986. }
  987.  else 
  988. if((124==z1)){
  989. _special='V';
  990. }
  991.  else 
  992. if((37==z1)){
  993. _special='\45';
  994. }
  995.  else 
  996. if((39==z1)){
  997. _special='\47';
  998. }
  999.  else 
  1000. if((34==z1)){
  1001. _special='\42';
  1002. }
  1003.  else 
  1004. if((91==z1)){
  1005. _special='\50';
  1006. }
  1007.  else 
  1008. if((93==z1)){
  1009. _special='\51';
  1010. }
  1011.  else 
  1012. if((123==z1)){
  1013. _special='\74';
  1014. }
  1015.  else 
  1016. if((125==z1)){
  1017. _special='\76';
  1018. }
  1019. }
  1020. r7extend(((T7*)a2),'\45');
  1021. /*IF*/if ((_special)==('\0')) {
  1022. r7extend(((T7*)a2),'\57');
  1023. r2append_in(((unsigned char)a1),a2);
  1024. r7extend(((T7*)a2),'\57');
  1025. }
  1026. else {
  1027. r7extend(((T7*)a2),_special);
  1028. }
  1029. /*FI*/}
  1030. void r260make(T260* C,T0* a1,char a2,int a3){
  1031. C->_start_position=a1;
  1032. C->_value=a2;
  1033. /*[IRF3.3set_pretty_print_mode*/((((T260*)(C)))->_pretty_print_mode)=(a3);
  1034. /*]*/
  1035. }
  1036. void r260print_as_target(T260* C){
  1037. r238put_character(((T238*)(oBC364fmt)),'\50');
  1038. /*[IRF3.6pretty_print*/{T260* C1=C;
  1039. r238put_string(((T238*)(oBC364fmt)),r260to_string(C1));
  1040. }/*]*/
  1041. r238put_character(((T238*)(oBC364fmt)),'\51');
  1042. r238put_character(((T238*)(oBC364fmt)),'\56');
  1043. }
  1044. T0* r260to_string(T260* C){
  1045. T0* R=NULL;
  1046. {T7*n=malloc(sizeof(*n));
  1047. *n=M7;
  1048. r7make(n,0);
  1049. R=(T0*)n;
  1050. }
  1051. r7extend(((T7*)R),'\47');
  1052. {int z1=(((T260*)C))->_pretty_print_mode/*13*/;
  1053.  
  1054. if((0==z1)){
  1055. r7extend(((T7*)R),(((T260*)C))->_value/*12*/);
  1056. }
  1057.  else 
  1058. if((1==z1)){
  1059. r260character_coding((((T260*)C))->_value/*12*/,R);
  1060. }
  1061.  else {r7extend(((T7*)R),'\45');
  1062. r7extend(((T7*)R),'\57');
  1063. r2append_in(((unsigned char)(((T260*)C))->_value/*12*/),R);
  1064. r7extend(((T7*)R),'\57');
  1065. }}
  1066. r7extend(((T7*)R),'\47');
  1067. return R;
  1068. }
  1069. /*No:CHARACTER_CONSTANT.fz_iinaiv*/
  1070. /*No:CHARACTER_CONSTANT.set_pretty_print_mode*/
  1071. /*No:CHARACTER_CONSTANT.start_position*/
  1072. /*No:CHARACTER_CONSTANT.precedence*/
  1073. /*No:CHARACTER_CONSTANT.percent_pretty_print*/
  1074. T0* r260to_runnable(T260* C,T0* a1){
  1075. T0* R=NULL;
  1076. /*IF*/if (((((T260*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1077. C->_current_type=a1;
  1078. R=(T0*)C;
  1079. }
  1080. else {
  1081. R=r260twin(C);
  1082. /*[IRF3.3set_current_type*/((((T260*)(((T260*)R))))->_current_type)=(a1);
  1083. /*]*/
  1084. }
  1085. /*FI*/return R;
  1086. }
  1087. /*No:CHARACTER_CONSTANT.bracketed_pretty_print*/
  1088. int fBC260result_type=0;
  1089. T0*oBC260result_type=NULL;
  1090. T0* r260result_type(void){
  1091. if (fBC260result_type==0){
  1092. T0* R=NULL;
  1093. fBC260result_type=1;
  1094. {T252*n=malloc(sizeof(*n));
  1095. *n=M252;
  1096. r252make(n,NULL);
  1097. R=(T0*)n;
  1098. }
  1099. oBC260result_type=R;}
  1100. return oBC260result_type;}
  1101. T0* r260twin(T260* C){
  1102. T0* R=NULL;
  1103. R=malloc(sizeof(*C));
  1104. *((T260*)R)=*C;
  1105. return R;
  1106. }
  1107. /*No:CHARACTER_CONSTANT.set_current_type*/
  1108. /*No:CHARACTER_CONSTANT.atomic_precedence*/
  1109. /*No:CHARACTER_CONSTANT.pretty_print*/
  1110. /*No:CHARACTER_CONSTANT.value*/
  1111. /*No:CHARACTER_CONSTANT.current_type*/
  1112. /*No:CHARACTER_CONSTANT.is_manifest_string*/
  1113. /*No:CHARACTER_CONSTANT.is_void*/
  1114. /*No:CHARACTER_CONSTANT.pretty_print_mode*/
  1115. void r260error(T0* a1,T0* a2){
  1116. r683add_position(a1);
  1117. r683error(((T683*)(oBC364eh)),a2);
  1118. }
  1119. /*No:LOOP_INVARIANT.fz_bad_assertion*/
  1120. T0* r213runnable(T0* a1,T0* a2,T0* a3){
  1121. T0* R=NULL;
  1122. T0* _a=NULL;
  1123. int _i=0;
  1124. /*IF*/if (!(r608empty(((T608*)a1)))) {
  1125. R=r608twin(((T608*)a1));
  1126. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  1127. while (!((_i)==(0))) {
  1128. r604push(((T604*)(oBC364small_eiffel)),a3);
  1129. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  1130. /*IF*/if ((_a)==((void*)(NULL))) {
  1131. r213error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  1132. }
  1133. else {
  1134. /*[IRF3.6put*/{T608* C1=((T608*)R);
  1135. T0* b1=_a;
  1136. int b2=_i;
  1137. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  1138. }/*]*/
  1139. }
  1140. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  1141. _i=(_i)-(1);
  1142. }
  1143. }
  1144. /*FI*/return R;
  1145. }
  1146. void r213make(T213* C,T0* a1,T0* a2,T0* a3){
  1147. C->_start_position=a1;
  1148. C->_header_comment=a2;
  1149. C->_list=a3;
  1150. }
  1151. T0* r213name(void){
  1152. T0* R=NULL;
  1153. R=((T0*)ms1_213);
  1154. return R;
  1155. }
  1156. /*No:LOOP_INVARIANT.nb_errors*/
  1157. /*No:LOOP_INVARIANT.start_position*/
  1158. T0* r213to_runnable(T213* C,T0* a1){
  1159. T0* R=NULL;
  1160. /*IF*/if (((((T213*)C))->_current_type/*12*/)==((void*)(NULL))) {
  1161. C->_current_type=a1;
  1162. /*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
  1163. C->_list=r213runnable((((T213*)C))->_list/*8*/,a1,r604top_rf(((T604*)(oBC364small_eiffel))));
  1164. }
  1165. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1166. R=(T0*)C;
  1167. }
  1168. /*FI*/}
  1169. else {
  1170. R=r213twin(C);
  1171. /*[IRF3.3set_current_type*/((((T213*)(((T213*)R))))->_current_type)=(NULL);
  1172. /*]*/
  1173. R=r213to_runnable(((T213*)R),a1);
  1174. }
  1175. /*FI*/return R;
  1176. }
  1177. T0* r213twin(T213* C){
  1178. T0* R=NULL;
  1179. R=malloc(sizeof(*C));
  1180. *((T213*)R)=*C;
  1181. return R;
  1182. }
  1183. /*No:LOOP_INVARIANT.set_current_type*/
  1184. void r213pretty_print(T213* C){
  1185. int _i=0;
  1186. r238indent(((T238*)(oBC364fmt)));
  1187. r238keyword(((T238*)(oBC364fmt)),r213name());
  1188. r238level_incr(((T238*)(oBC364fmt)));
  1189. /*IF*/if (((((T213*)C))->_header_comment/*4*/)!=((void*)(NULL))) {
  1190. r393pretty_print(((T393*)((((T213*)C))->_header_comment/*4*/)));
  1191. }
  1192. else {
  1193. r238indent(((T238*)(oBC364fmt)));
  1194. }
  1195. /*FI*//*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
  1196. _i=1;
  1197. while (!((_i)>((((T608*)((T608*)((((T213*)C))->_list/*8*/))))->_upper/*8*/))) {
  1198. /*IF*/if (r6_px_and(r238zen_mode(((T238*)(oBC364fmt))),(_i)==((((T608*)((T608*)((((T213*)C))->_list/*8*/))))->_upper/*8*/))) {
  1199. /*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(0);
  1200. /*]*/
  1201. }
  1202. else {
  1203. /*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(1);
  1204. /*]*/
  1205. }
  1206. /*FI*/r238indent(((T238*)(oBC364fmt)));
  1207. r348pretty_print(((T348*)(r608item(((T608*)((((T213*)C))->_list/*8*/)),_i))));
  1208. _i=(_i)+(1);
  1209. }
  1210. }
  1211. /*FI*/r238level_decr(((T238*)(oBC364fmt)));
  1212. r238indent(((T238*)(oBC364fmt)));
  1213. }
  1214. /*No:LOOP_INVARIANT.list*/
  1215. /*No:LOOP_INVARIANT.current_type*/
  1216. /*No:LOOP_INVARIANT.header_comment*/
  1217. void r213error(T0* a1,T0* a2){
  1218. r683add_position(a1);
  1219. r683error(((T683*)(oBC364eh)),a2);
  1220. }
  1221. int fBC364type_character_ref=0;
  1222. T0*oBC364type_character_ref=NULL;
  1223. T0* r252type_character_ref(void){
  1224. if (fBC364type_character_ref==0){
  1225. T0* R=NULL;
  1226. T0* _character_ref=NULL;
  1227. fBC364type_character_ref=1;
  1228. {T451*n=malloc(sizeof(*n));
  1229. *n=M451;
  1230. r451make(n,((T0*)ms9_473),NULL);
  1231. _character_ref=(T0*)n;
  1232. }
  1233. {T657*n=malloc(sizeof(*n));
  1234. *n=M657;
  1235. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_character_ref);
  1236. /*]*/
  1237. R=(T0*)n;
  1238. }
  1239. oBC364type_character_ref=R;}
  1240. return oBC364type_character_ref;}
  1241. int r252has_creation(T252* C,T0* a1){
  1242. int R=0;
  1243. r683add_position(X776start_position(a1));
  1244. r252error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T252*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  1245. return R;
  1246. }
  1247. /*No:TYPE_CHARACTER.is_anchored*/
  1248. /*No:TYPE_CHARACTER.us_character_ref*/
  1249. /*No:TYPE_CHARACTER.is_array*/
  1250. int r252is_a(T252* C,T0* a1){
  1251. int R=0;
  1252. /*IF*/if (X291is_character(a1)) {
  1253. R=1;
  1254. }
  1255. else {
  1256. R=r605is_subclass_of(((T605*)(r252base_class(C))),X291base_class(a1));
  1257. /*IF*/if (R) {
  1258. r252used_as_reference();
  1259. }
  1260. /*FI*/}
  1261. /*FI*//*IF*/if (!(R)) {
  1262. r683add_type((T0*)C,((T0*)ms71_470));
  1263. r683add_type(a1,((T0*)ms67_470));
  1264. }
  1265. /*FI*/return R;
  1266. }
  1267. /*No:TYPE_CHARACTER.run_type*/
  1268. /*No:TYPE_CHARACTER.is_pointer*/
  1269. /*No:TYPE_CHARACTER.is_string*/
  1270. /*No:TYPE_CHARACTER.is_like_feature*/
  1271. /*No:TYPE_CHARACTER.is_like_current*/
  1272. void r252make(T252* C,T0* a1){
  1273. {T451*n=malloc(sizeof(*n));
  1274. *n=M451;
  1275. r451make(n,((T0*)ms8_473),a1);
  1276. C->_base_class_name=(T0*)n;
  1277. }
  1278. }
  1279. /*No:TYPE_CHARACTER.us_item*/
  1280. void r252load_ref(T0* a1){
  1281. T0* _rf=NULL;
  1282. T0* _rc=NULL;
  1283. T0* _cn=NULL;
  1284. {T451*n=malloc(sizeof(*n));
  1285. *n=M451;
  1286. r451make(n,a1,NULL);
  1287. _cn=(T0*)n;
  1288. }
  1289. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  1290. r368set_at_run_time(((T368*)_rc));
  1291. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
  1292. }
  1293. /*No:TYPE_CHARACTER.nb_errors*/
  1294. int fBC252check_type=0;
  1295. void r252check_type(T252* C){
  1296. if (fBC252check_type==0){
  1297. T0* _rc=NULL;
  1298. T0* _bc=NULL;
  1299. fBC252check_type=1;
  1300. _bc=r252base_class(C);
  1301. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1302. _rc=r252run_class(C);
  1303. }
  1304. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1305. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  1306. r252error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T252*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_252));
  1307. }
  1308. /*FI*/}
  1309. /*FI*/}}
  1310. /*No:TYPE_CHARACTER.start_position*/
  1311. /*No:TYPE_CHARACTER.fz_inako*/
  1312. /*No:TYPE_CHARACTER.is_character*/
  1313. T0* r252written_mark(void){
  1314. T0* R=NULL;
  1315. R=((T0*)ms8_473);
  1316. return R;
  1317. }
  1318. T0* r252to_runnable(T252* C,T0* a1){
  1319. T0* R=NULL;
  1320. R=(T0*)C;
  1321. r252check_type(C);
  1322. return R;
  1323. }
  1324. /*No:TYPE_CHARACTER.is_run_type*/
  1325. /*No:TYPE_CHARACTER.is_formal_generic*/
  1326. T0* r252generic_list(T252* C){
  1327. T0* R=NULL;
  1328. r252fatal_error_generic_list(C);
  1329. return R;
  1330. }
  1331. /*No:TYPE_CHARACTER.is_real*/
  1332. /*No:TYPE_CHARACTER.us_character*/
  1333. /*No:TYPE_CHARACTER.is_bit*/
  1334. void r252fatal_error_generic_list(T252* C){
  1335. r683add_type((T0*)C,((T0*)ms12_291));
  1336. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1337. }
  1338. /*No:TYPE_CHARACTER.pretty_print*/
  1339. T0* r252smallest_ancestor(T252* C,T0* a1){
  1340. T0* R=NULL;
  1341. T0* _rto=NULL;
  1342. _rto=X291run_type(a1);
  1343. /*IF*/if (X291is_character(_rto)) {
  1344. R=(T0*)C;
  1345. }
  1346. else {
  1347. R=r657smallest_ancestor(((T657*)(r252type_character_ref())),_rto);
  1348. }
  1349. /*FI*/return R;
  1350. }
  1351. /*No:TYPE_CHARACTER.is_boolean*/
  1352. /*No:TYPE_CHARACTER.is_double*/
  1353. T0* r252run_class(T252* C){
  1354. T0* R=NULL;
  1355. R=r604run_class((T0*)C);
  1356. return R;
  1357. }
  1358. T0* r252run_time_mark(void){
  1359. T0* R=NULL;
  1360. R=((T0*)ms8_473);
  1361. return R;
  1362. }
  1363. int r252is_a_in(T252* C,T0* a1,T0* a2){
  1364. int R=0;
  1365. T0* _ct=NULL;
  1366. T0* _t2=NULL;
  1367. T0* _t1=NULL;
  1368. /*IF*/if ((r252written_mark())==((void*)(X291written_mark(a1)))) {
  1369. R=1;
  1370. }
  1371. else {
  1372. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  1373. _t1=r252to_runnable(C,_ct);
  1374. _t2=X291to_runnable(a1,_ct);
  1375. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1376. R=1;
  1377. }
  1378. else {
  1379. R=X291is_a(_t1,_t2);
  1380. }
  1381. /*FI*/}
  1382. /*FI*/return R;
  1383. }
  1384. T0* r252look_up_for(T252* C,T0* a1,T0* a2){
  1385. T0* R=NULL;
  1386. R=r605look_up_for(((T605*)(r252base_class(C))),a1,a2);
  1387. return R;
  1388. }
  1389. /*No:TYPE_CHARACTER.expanded_initializer*/
  1390. /*No:TYPE_CHARACTER.fz_dot*/
  1391. /*No:TYPE_CHARACTER.is_generic*/
  1392. int fBC252used_as_reference=0;
  1393. void r252used_as_reference(void){
  1394. if (fBC252used_as_reference==0){
  1395. fBC252used_as_reference=1;
  1396. r252load_ref(((T0*)ms9_473));
  1397. }}
  1398. /*No:TYPE_CHARACTER.is_reference*/
  1399. void r252error(T0* a1,T0* a2){
  1400. r683add_position(a1);
  1401. r683error(((T683*)(oBC364eh)),a2);
  1402. }
  1403. T0* r252base_class(T252* C){
  1404. T0* R=NULL;
  1405. T0* _bcn=NULL;
  1406. _bcn=(((T252*)C))->_base_class_name/*4*/;
  1407. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1408. R=r451base_class(((T451*)_bcn));
  1409. }
  1410. else {
  1411. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1412. r7append(((T7*)(oBC683explanation)),b1);
  1413. }/*]*/
  1414. r683add_type((T0*)C,((T0*)ms67_470));
  1415. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1416. }
  1417. /*FI*/return R;
  1418. }
  1419. /*No:TYPE_CHARACTER.is_any*/
  1420. /*No:TYPE_CHARACTER.base_class_name*/
  1421. /*No:TYPE_CHARACTER.is_expanded*/
  1422. /*No:TYPE_CHARACTER.is_basic_eiffel_expanded*/
  1423. /*No:TYPE_CHARACTER.is_none*/
  1424. /*No:TYPE_CHARACTER.is_integer*/
  1425.  
  1426.